package client;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.Scanner;

public class Messenger extends Thread {

    private PrintStream saida;
    private BufferedReader entrada;
    private String mensagemEntrada;
    private String mensagemSaida;
    private Scanner teclado;
    private String login;
	private ClientSocket conexao;    
    
    public Messenger(){        
    	conexao = new ClientSocket();
    	try {
    		teclado = new Scanner(System.in);
			saida = new PrintStream((conexao.getSocket()).getOutputStream());
	        entrada = new BufferedReader(new InputStreamReader((conexao.getSocket()).getInputStream()));
		} catch (IOException e) {
            System.out.println("Ocorreu uma Falha... .. ." + " IOException: " + e);
		}
    }
    
    public Messenger(ClientSocket conexao){
    	this.conexao = conexao;
    	try {
    		teclado = new Scanner(System.in);
			saida = new PrintStream((conexao.getSocket()).getOutputStream());
	        entrada = new BufferedReader(new InputStreamReader((conexao.getSocket()).getInputStream()));
		} catch (IOException e) {
            System.out.println("Ocorreu uma Falha... .. ." + " IOException: " + e);
		}
    }
    
    public ClientSocket getConexao(){
    	return conexao;
    }
    
    public void perguntarLogin(){
    	System.out.println("Digite o seu nome:");
    	login = teclado.nextLine();
    	
        saida.println(login);
    }

    public void enviarMensagens(){
        while(true){
            if(conexao.conectado()){
            	System.out.print("Mensagem >");
                mensagemSaida = teclado.nextLine();

                saida.println(mensagemSaida);
            }else{
            	System.out.println("Erro na conexão");
            }
        }
    }

    public String receberMensagems(){
         while (true){
        	 try{
        		 mensagemEntrada = entrada.readLine();
        	 }catch (IOException e) {
                 System.out.println("Ocorreu uma Falha... .. ." + " IOException: " + e);
                 System.exit(1);
             }
             
        	 if (mensagemEntrada == null){
                 System.out.println("conexão encerrada!");
                 System.exit(0);
             }
             
        	 System.out.println();
             System.out.println(mensagemEntrada);
             System.out.print(" Responder > ");
         }
    }
    
    public void run(){
    	receberMensagems();
    }
}
